package com.woniuxy.lab.woniu_lab.service.dto;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 靶场表
 * </p>
 *
 * @author Silas
 * @since 2023-03-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel("靶场（实验）对象")
public class RangeDto implements Serializable {

    /**
     * id
     */
    @ApiModelProperty(value = "靶场ID" ,example = "1")
    private Integer id;

    /**
     * 上传靶场的讲师ID
     */
    @ApiModelProperty(value = "讲师ID" ,example = "1")
    private Integer teacherId;

    /**
     * 靶场名称
     */
    @ApiModelProperty(value = "靶场名称" ,example = "蜗牛币靶场")
    private String name;

    /**
     * 文件类型 docker/war/zip/other (压缩包不能超过100M)
     */
    @ApiModelProperty(value = "文件类型" ,example = "war")
    private String fileType;

    /**
     * 镜像id
     */
    @ApiModelProperty(value = "镜像id" ,example = "1111")
    private String imageId;

    /**
     * 镜像名称
     */
    @ApiModelProperty(value = "镜像名称" ,example = "蜗牛币镜像")
    private String imageName;

    /**
     * 难度(low/middle/high)
     */
    @ApiModelProperty(value = "难度" ,example = "low")
    private String level;

    /**
     * 所属分类(扫描类、文件类、SQL注入类、XSS类、CSRF类、SSRF类、代码执行、命令执行、文件上传类、文件包含类、反序列化类、Redis类、内网渗透类)
     */
    @ApiModelProperty(value = "所属分类" ,example = "CSRF")
    private String rangeType;

    /**
     * 定价(蜗牛币)
     */
    @ApiModelProperty(value = "定价" ,example = "20")
    private BigDecimal price;

    /**
     * 积分
     */
    @ApiModelProperty(value = "积分" ,example = "3")
    private Integer score;

    /**
     * 实验类型ctf/exper
     */
    @ApiModelProperty(value = "实验类型" ,example = "exper")
    private String ctfOrExper;

    /**
     * 实验名称
     */
    @ApiModelProperty(value = "实验名称" ,example = "蜗牛币实验")
    private String experName;

    /**
     * 实验简介(不能超过500字)
     */
    @ApiModelProperty(value = "实验简介" ,example = "快来获取蜗牛积分吧")
    private String introduce;

    /**
     * 实验手册
     */
    @ApiModelProperty(value = "实验手册" ,example = "获取积分指南")
    private String manual;

    /**
     * 通关次数
     */
    @ApiModelProperty(value = "通关次数" ,example = "5")
    private Integer passCount;

    /**
     * 启动次数
     */
    @ApiModelProperty(value = "启动次数" ,example = "10")
    private Integer createCount;

    /**
     * 上传时间
     */
    @ApiModelProperty(value = "上传时间" ,example = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime uploadTime;

    /**
     * 实验封面地址
     */
    @ApiModelProperty(value = "实验封面地址" ,example = "https://tiebapic.baidu.com/forum/" +
            "w%3D580%3B/sign=2b3078e8d5ef76c6d0d2fb23ad2dfffa/" +
            "32fa828ba61ea8d333f2decdd20a304e241f5823.jpg?tbpicau=2023-03-17-05_90a386a2137910d40bacbbbd7606382d")
    private String pic;

    /**
     * 收藏数
     */
    @ApiModelProperty(value = "收藏数" ,example = "10")
    private Integer collectionNumber;


}
